﻿Imports System.Configuration

Namespace Connection

    ''' <summary>
    ''' コンフィグから、コネクションクラスの生成を行うクラス
    ''' </summary>
    ''' <remarks></remarks>
    Public Class KairyuSectionHandlerFactory

        ''' <summary>
        ''' アプリケーション構成ファイルから、KairyuSectionHandlerクラスを生成します。
        ''' </summary>
        Public Shared Function Create() As KairyuSectionHandler
            Static h As KairyuSectionHandler = Nothing
            If h IsNot Nothing Then Return h

            Dim name As String = "kairyu"
            Dim msg As String = String.Format("アプリケーション構成ファイルのセクション取得に失敗しました。(name:{0})", name)

            Dim sec As ConfigurationSection = System.Configuration.ConfigurationManager.GetSection(name)
            If sec Is Nothing Then Throw New InvalidOperationException(msg)
            h = DirectCast(sec, KairyuSectionHandler)

            Return h
        End Function

    End Class

End Namespace

